home *** CD-ROM | disk | FTP | other *** search
/ SGI Desktop Special Edition 1.1 / SGI Desktop Special Edition 1.1.iso / dist / patchSG0000766.idb / usr / relnotes / patchSG0000766 / ch1.z / ch1
Encoding:
Text File  |  1995-11-13  |  35.2 KB  |  925 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        1.  _P_a_t_c_h__S_G_0_0_0_0_7_6_6__R_e_l_e_a_s_e__N_o_t_e
  9.  
  10.        This release note describes patch SG0000766 to IRIX 5.3.
  11.  
  12.        1.1  _S_u_p_p_o_r_t_e_d__H_a_r_d_w_a_r_e__P_l_a_t_f_o_r_m_s
  13.  
  14.        This patch contains bug fixes for the following machine
  15.        types.  The software cannot be installed on other
  16.        configurations:
  17.  
  18.           +o Challenge and Onyx with R4400 processors
  19.  
  20.           +o Crimson (4D/510)
  21.  
  22.           +o PowerSeries (4D/120, 4D/2xx, 4D/3xx and 4D/4xx)
  23.  
  24.           +o Indigo and Indigo2 (including the new 175MHz and 2MB
  25.             cache processor modules)
  26.  
  27.           +o Indy
  28.  
  29.        1.2  _S_u_p_p_o_r_t_e_d__S_o_f_t_w_a_r_e__P_l_a_t_f_o_r_m_s
  30.  
  31.        This patch contains bug fixes for IRIX 5.3.  The software
  32.        cannot be installed on other configurations.
  33.  
  34.        1.2.1  _S_p_e_c_i_a_l__p_r_o_c_e_d_u_r_e__f_o_r__r_e_m_o_v_i_n_g__t_h_i_s__p_a_t_c_h
  35.  
  36.        Removing this patch may require reinstalling certain other
  37.        patches.  Reinstalling a patch is necessary whenever two
  38.        unrelated patches that install the same file(s) have been
  39.        installed and one of those patches is then removed.  This
  40.        occurs because removing one of the patches replaces the file
  41.        in common with the version of the file that was in place
  42.        before either patch was installed.  Reinstalling the
  43.        remaining patch replaces the file with the newer version
  44.        from the patch.  Almost all patches are designed to avoid
  45.        this situation (patches containing common files).  However,
  46.        in a few cases it's necessary.
  47.  
  48.        The files this patch has in common with other patches are
  49.        _x_f_s_s_t_u_b_s._a and _x_l_v_s_t_u_b_s._a.  Patches 452, 481, and 547
  50.        contain _x_f_s_s_t_u_b_s._a.  Patch 585 contains _x_l_v_s_t_u_b_s._a.  Any
  51.        patch that replaces one of the listed patches will also
  52.        contain the same stubs files.
  53.  
  54.        If you remove any one of patches that contain _x_f_s_s_t_u_b_s._a
  55.        (_x_l_v_s_t_u_b_s._a) you must reinstall the others that also contain
  56.        _x_f_s_s_t_u_b_s._a (_x_l_v_s_t_u_b_s._a).  Note that if you have just one of
  57.        the affected patches installed this procedure doesn't apply
  58.        and it may be removed without difficulty.
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.        What happens when one of these overlapping patches is
  75.        removed without (one of) the other(s) being reinstalled is
  76.        that the kernel won't link due to undefined symbols.  If the
  77.        kernel links there is not a problem.  Nothing in the
  78.        operation of your system can be affected by using the wrong
  79.        XFS or XLV stubs files.
  80.  
  81.        1.2.2  _W_a_r_n_i_n_g__f_o_r__5_._3__w_i_t_h__X_F_S__c_o_n_f_i_g_u_r_a_t_i_o_n_s
  82.  
  83.        Because of an addition to the _x_l_v_s_t_u_b_s._a image shipped as a
  84.        part of this patch, upon relinking the kernel after
  85.        installing this patch a warning may be printed out by the
  86.        linker.  This warning will only appear if XLV is not
  87.        configured into the kernel.  The text of the warning is:
  88.  
  89.        Warning: xlvstubs.a(xlvstubs.o): xlv_next_config_request:
  90.        multiply defined
  91.                previous (used) definition from 'xlvplexstubs.a';
  92.                new (ignored) definition from 'xlvstubs.a'
  93.  
  94.        This warning is harmless and expected.  It does not affect
  95.        the correctness of the kernel output by the linker, and
  96.        should be ignored.
  97.  
  98.        1.3  _B_u_g_s__F_i_x_e_d__b_y__P_a_t_c_h__S_G_0_0_0_0_7_6_6
  99.  
  100.        Descriptions of fixes in this patch include bug numbers from
  101.        the Silicon Graphics bug tracking system for reference.
  102.  
  103.        This patch includes support for Rev.C (and higher) DANG
  104.        chips.  Previously only Rev.B DANG chips were recognized, in
  105.        order to protect against bugs in Rev.A chips.  This patch
  106.        recognizes DANG chips whose version is Rev.B or higher.  It
  107.        is required for support of products on Challenge and Onyx
  108.        systems such as the following, which use the Rev.C chip:
  109.  
  110.           +o HIO FDDI mezz (XPI)
  111.  
  112.           +o HIO 8-port Ethernet (E-plex)
  113.  
  114.        The following bug fixes in IRIX 5.3 are included in this
  115.        patch.
  116.  
  117.           +o On earlier versions of IRIX 5.3, the kernel crash can
  118.             crash if one thread of a parallel process group deletes
  119.             a memory segment that is simultaneously in use by
  120.             another thread in the same sssspppprrrroooocccc group for an I/O
  121.             operation.  This is fixed by detecting _m_u_n_m_a_p and _s_h_m_d_t
  122.             calls that reference segments in use by another sssspppprrrroooocccc
  123.             for I/O and rejecting those calls with EBUSY.  (Bug
  124.             #275207).
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.           +o 133Mhz R4600SC loses time at about 30 seconds/day (Bug
  141.             #253937).  Fix causes hinv to report CPU speed as
  142.             132Mhz.  Previously hinv would report an incorrect CPU
  143.             speed of 134Mhz.
  144.  
  145.           +o The 175Mhz R4400SC keeps inaccurate ust.
  146.  
  147.           +o An Indy or Challenge S would panic after a power
  148.             failure warning.  This was generally the result of a
  149.             temporary power brown out (bug #249413).
  150.  
  151.           +o When an Indy or Challenge S encountered a bad kernel
  152.             memory reference, it would sometimes hang
  153.             uninterruptibly (so that even the power switch would
  154.             not work) (bug #254936).
  155.  
  156.           +o Parity error reporting does not report correct SIMM or
  157.             physical address in some circumstances (Bug #265516).
  158.  
  159.           +o It is possible for the system to loop forever printing
  160.             the message "CPU x WARNING:tlbmiss: invalid badvaddr
  161.             XXX". This could happen if there is an invalid
  162.             reference in the kernel to kernel heap space. When this
  163.             situation arose the system would have to be forcibly
  164.             rebooted. The kernel has now been corrected to panic
  165.             whenever such a situation arises so that the errant
  166.             code can be isolated (bugs 189291, 251742).
  167.  
  168.           +o Lost clock interrupts on Power Series machines cause
  169.             time to drift under a heavy system load. This patch
  170.             provides a temporary workaround to the problem on
  171.             machines equipped with an IO3 board. Machines which do
  172.             not have an IO3 board installed will be uneffected by
  173.             this patch (bug 192233).
  174.  
  175.           +o On large memory systems, the kernel previously had no
  176.             throttle mechanism on the use of kernel virtual address
  177.             space.  Kernel virtual address space is used to map the
  178.             kernel and its control data structures. Sometimes, EFS,
  179.             NFS, raw I/O and other operations could cause the O/S
  180.             to consume too much kernel virtual space to map file
  181.             systems buffers. A new kernel variable "bmappedpct",
  182.             dynamically tuneable, has been added to limit the % of
  183.             "syssegsz" kernel virtual space allowed to be used by
  184.             the file system buffers. When that value is exceeded,
  185.             the system actively attempts to reclaim virtual address
  186.             space. As shipped, this patch sets this value at 50%.
  187.             Setting this tunable variable to "100" (or 100%)
  188.             effectively disables this new control.  In addition,
  189.             this patch increases the maximum amount of kernel
  190.             virtual space a 32-bit Challenge system can allocate
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                   - 4 -
  203.  
  204.  
  205.  
  206.             from 256MB to 384MB.  The default formula, which is
  207.             used when the tuneable parameter "syssegsz" is 0, is
  208.             still 1/2 the system's memory size (bug 205422).
  209.  
  210.           +o Two optimizations were made to the cache flushing code
  211.             in this patch. One change applies to all platforms and
  212.             pertains to situations where user code pages are
  213.             faulted in. In this scenario it is necessary to flush
  214.             the code page out of all the caches in order to
  215.             guarantee that stale code is not executed. This change
  216.             ensures that once the code page has been flushed and
  217.             then executed, it will remain in the caches if it is
  218.             faulted in again.  The second change applies to
  219.             Challenge systems. For these systems it is necessary
  220.             for all cpus to occasionally flush all of their caches
  221.             in order to avoid virtual coherency exceptions on
  222.             kernel stack pages. What this change does is to greatly
  223.             reduce the frequency of this event by ensuring that all
  224.             free pages in the system are marked as clean in the
  225.             caches (bug 248890).
  226.  
  227.           +o Symmon sometimes hangs or gets exceptions on Indigo2
  228.             and Indy R4000 and R4400 machines, when single
  229.             stepping, continuing from a breakpoint or entering into
  230.             symmon from either cntrl-a or symstop or dbgstop. (bug
  231.             249285)
  232.  
  233.           +o This patch fixes a problem which arose when programs
  234.             were execed by pre-loading all their text. In such a
  235.             situation the lack of coherency between the instruction
  236.             and data caches was not accounted for and the results
  237.             were not reliable. This now works correctly (bug
  238.             249652).
  239.  
  240.           +o A race condition exists between a process exiting and
  241.             looking at that same process's credentials using the
  242.             /proc interface. The /proc interface attempts to look
  243.             at process's credentials after releasing a lock on the
  244.             process entry. If the process exits within a few
  245.             instructions the lock being released, then the /proc
  246.             support can use an invalid pointer and panic the
  247.             system. The solution in this patch holds the process
  248.             entry locked until all credential information is copied
  249.             (bug 249685).
  250.  
  251.           +o The logical volume driver has a race condition between
  252.             the "open" and "ioctl" entry points. This patch
  253.             includes a fix that serializes opens and ioctls on
  254.             logical volumes. This fixes problems encountered by
  255.             running multiple mklv commands on the same LV at the
  256.             same time (bug 250334).
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                   - 5 -
  269.  
  270.  
  271.  
  272.           +o On an MP system, a process can change the priority of
  273.             another process which could be running on another cpu.
  274.             This fix will allow it to do so without running into
  275.             any kernel stack extension page mismatches (bug
  276.             252308).
  277.  
  278.           +o Doing frequent raw I/O operations to buffers scattered
  279.             throughout large data areas (regions in excess of 32
  280.             Meg) can cause large numbers of tfaults in certain
  281.             circumstances.  These tfaults have no effect on the
  282.             correctness of the system, but can reduce overall
  283.             performance if they occur too frequently.  (The tfault
  284.             rate can be observed with osview(1).)  This fix
  285.             eliminates the excessive tfaults (bug 253861).
  286.  
  287.           +o Kernel multi-access, single-update locks are fixed in
  288.             this patch to work properly for single-processor
  289.             systems (bug 254554).
  290.  
  291.           +o A bug in the getdents system call would cause a system
  292.             crash if a zero-length request was passed to getdents.
  293.             This case is now fixed to return EINVAL (bug 255067).
  294.  
  295.           +o Previously, when a region of user memory grew large
  296.             enough to require a multi-level chunk tree, and when
  297.             the user program did a "shrink" via sbreak, and when
  298.             the shrink happened to occur on certain boundaries that
  299.             are significant to the anon chunk management code, it
  300.             was possible for the process to hang or for the system
  301.             to crash.  This now works correctly (bug 255268).
  302.  
  303.           +o There is a small race condition that can cause the
  304.             kernel to get a segmentation violation with a NULL
  305.             pointer.  This can happen in special cases that can
  306.             occur when the following conditions simultaneously
  307.             happen: (1) the kernel tries to page out pages from a
  308.             process's data or bss, (2) this is after the data has
  309.             been modified by the debugger (or in other cases that
  310.             cause the data or bss to be shared between multiple
  311.             processes), and (3) the process then shrinks its bss
  312.             segment with either the brk or sbrk system calls while
  313.             the paging I/O is in progress for the pages being
  314.             affected by the brk or sbrk call.  This now works
  315.             correctly (bug 255378).
  316.  
  317.           +o A special case file-system buffer cache bug could
  318.             produce an incorrect buffer page list.  This now works
  319.             correctly.  (bug 257730).
  320.  
  321.           +o When an application sets the ioctl flag CLOCAL (man
  322.             termio), hardware flow control (CTS) is disabled.  This
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                   - 6 -
  335.  
  336.  
  337.  
  338.             is incorrect and results in data being lost.  Hardware
  339.             flow control should only depend on the value of
  340.             CNEW_RTSCTS.  (bug 243836)
  341.  
  342.           +o When the posix_tcsendbreak parameter is set, this fix
  343.             defers release of the controlling tty vnode in certain
  344.             cases of exit by the process group/session leader, in
  345.             compliance with PCTS FIPS 151-2, DC/tcsetpgrp test 10.
  346.             It is not recommended that the posix_tcsendbreak
  347.             parameter be set for normal operation (bug 228386).
  348.  
  349.           +o When there is a previous alarm() request with less than
  350.             one second remaining, a call to alarm() is fixed to
  351.             return 1, in compliance with PCTS FIPS 151-2, Section
  352.             PP, alarm(); Assertion 9 (bug 229122).
  353.  
  354.           +o Signal handling is fixed to deliver SIGSTOP before
  355.             other lower numbered signals, in compliance with PCTS
  356.             FIPS 151-2 sigsuspend() (bug 235511).
  357.  
  358.           +o Currently, IRIX returns an error on sending a signal to
  359.             a zombie process - a fix in this patch causes a return
  360.             value of 0 for a kill() that delivers a signal to a
  361.             zombie process (one that has terminated, but who has
  362.             not been waited on by its parent process), subject to
  363.             permission checking.  This change is in compliance with
  364.             PCTS FIPS 151-2, DEF/gen_terms test 3 (bug 237358).
  365.  
  366.           +o When the posix_tty_default parameter is set, this fix
  367.             causes SIGHUP to be issued instead of SIGTSTP on modem
  368.             disconnect, in compliance with PCTS FIPS 151-2,
  369.             DC/tcsetattr test 21 (bug 237980).
  370.  
  371.           +o Fixes POSIX 151-2 DC/tcsendbreak 4.  Prevents possible
  372.             corruption of data sent immediately prior to issuing
  373.             break on serial ports running at baud rates below
  374.             19.2Kbaud.  (bug 261242).
  375.  
  376.           +o When the posix_tty_default parameter is set, this fix
  377.             avoids placing a STREAMS message boundary at the
  378.             location of an INTR, QUIT, SUSP special character in
  379.             the input stream, in compliance with PCTS FIPS 151-2,
  380.             DC/settable tests 67, 68 (bug 238249).
  381.  
  382.           +o Fixes POSIX 151-2: DC/settable 33.  Ensures that STOP
  383.             character is always sent when input buffer approaches
  384.             overflow. The systune parameter posix_tty_default must
  385.             be set to 1 to activate the fix (bug 261561).
  386.  
  387.           +o Certain real time applications have surfaced a
  388.             performance problem, symptomized by bursts of rfaults
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                                   - 7 -
  401.  
  402.  
  403.  
  404.             that last for about 3 seconds and occur once every 3-5
  405.             minutes.  These bursts can cause a real time
  406.             application to miss its deadlines.  This patch includes
  407.             a fix which eliminates these bursts by getting rid of
  408.             most of the region lookups in tfault (bug 251286).
  409.  
  410.           +o A fix in this patch ensures that the last process to
  411.             close a terminal device file causes any data in the
  412.             output queue to be sent to the device.  (bug 259751).
  413.  
  414.           +o This patch contains support for REACT/PRO 1.1.
  415.             Previous versions of REACT/PRO will not work with this
  416.             patch. Customers running version 1.0 of REACT/PRO
  417.             should remove it or replace it at the time this patch
  418.             is installed (bugs 266215 and 266216).
  419.  
  420.           +o In fork, the parent process calls save() and then
  421.             copies the save area to the child's uarea. In between,
  422.             there is a call to page_mapin() which could switch out
  423.             the parent process and that ends up changing the save
  424.             area.  Therefore, the child ends up with a bad save
  425.             area and resumes at the wrong place.  This bug fix
  426.             switches the order of copying save area and calling
  427.             page_mapin() to close the window for the manifestation
  428.             of the bug (bug 262839).
  429.  
  430.           +o On EVEREST and ONYX, when a processor was isolated,
  431.             timeouts running on a processor would be incorrectly
  432.             migrated to another processor.  Side effects of the
  433.             migration is that timeouts could take effect either
  434.             immediately, or be delayed 10 times as long.  This
  435.             could cause premature SCSI timeouts and resets, as well
  436.             as other bad effects (bug 267583).
  437.  
  438.           +o Symmon, the kernel debugger, would sometimes fail on
  439.             certain configurations due to uncached accesses
  440.             conflicting with cached accesses. This problem affects
  441.             IP19 Everest processors of all speeds, but is more
  442.             likely to occur on the faster CPUs.  It is manifested
  443.             as either an infinite loop of "SYMMON EXCEPTION" during
  444.             boot, or CPUs not starting.  Symmon now runs cached,
  445.             and the kernel initializes the cache in such a way as
  446.             to not cause any conflicting cached and uncached
  447.             accesses (bug 245913).
  448.  
  449.           +o Production kernels would not support some of the symmon
  450.             commands such as "plist" and "slpproc". This was caused
  451.             by tlb misses that neither the kernel or symmon were
  452.             prepared to handle. The fix is to use a more general
  453.             utlbmiss handler if symmon is loaded (the same as a
  454.             developers DEBUG kernel).  This may cause a small
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.                                   - 8 -
  467.  
  468.  
  469.  
  470.             decrease in performance for kernels running with symmon
  471.             (bug 256363).
  472.  
  473.           +o On EVEREST and ONYX it was possible that a timeout
  474.             interrupt from a timeout that had previously been moved
  475.             off the processor would still interrupt the processor.
  476.             This would disrupt real time programs (bug 267112).
  477.  
  478.           +o On a large MP system under heavy rcp network load it is
  479.             possible for the kernel udp multireader/writer lock to
  480.             thrash while one process attempts to release it and
  481.             many are attempting to acquire it.  The symptoms are
  482.             that gr_osview shows several cpus pegged in the red
  483.             (%sys) for several seconds at a time every few seconds,
  484.             and "ping localhost" reports erratic very high
  485.             (seconds!) ping times.  This behavior is fixed in this
  486.             patch (bug 266961).
  487.  
  488.           +o Resource limits were getting reset any time a process
  489.             execed a setuid/setgid program. This fix allows
  490.             restriction to only those processes which exec a
  491.             setuid/setgid-to-root program, and adds a configuration
  492.             option, reset_limits_on_exec, to enable the restricted
  493.             behavior (i.e., not reset limits even when program is
  494.             setuid to root).  The default setting for this variable
  495.             is one, which retains the current behavior.  If the new
  496.             restricted behavior is needed, reset_limits_on_exec
  497.             should be set to zero.  Refer to the comments in
  498.             mtune/kernel system file (bug 250430).
  499.  
  500.           +o If a process using OpenGL created a child process which
  501.             shared the address space of the parent, then attempted
  502.             to use OpenGL from the child process the process or
  503.             system could hang.  This problem could be encountered
  504.             by applications using the OpenGL version of the movie
  505.             library (libmovieGL), since the movie library creates a
  506.             thread which uses OpenGL to display frames from the
  507.             movie.  This problem has been fixed.  (bug 265136).
  508.  
  509.           +o Changes were put into the kernel which allow the poll
  510.             system call to accept file descriptors (nfds) upto the
  511.             current resource limit of maximum number of open files
  512.             per process (bug 268855).
  513.  
  514.           +o Challenge and Onyx systems can crash during probing at
  515.             times when the combination of hardware error bits set
  516.             in the IO4 error registers are not expected.  Although
  517.             rare, these cases are fixed in this patch (bug 267292).
  518.  
  519.           +o Under rare circumstances a process on a local scheduler
  520.             affinity queue could be starved of cpu time because of
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.                                   - 9 -
  533.  
  534.  
  535.  
  536.             a bug in the clock-based affinity queue cleanup that
  537.             caused the first affinity queue that should have been
  538.             examined to be skipped.  A simple fix in this patch
  539.             ensures that all local queues are examined and that
  540.             processes with expired affinity on the local queues are
  541.             correctly moved to the global queue (bug 268443).
  542.  
  543.           +o This patch includes kernel changes that improve the
  544.             performance of the pty subsystem by reducing system
  545.             overhead.  A new version of the streamio(7) manual page
  546.             is included with this patch, which documents two new
  547.             ioctls added in support of the performance optimization
  548.             (bug 243813).  See the following section, "STREAMS
  549.             STRHOLD capability", for complete interface
  550.             description.
  551.  
  552.           +o Long running processes that continuously forked new
  553.             children faster than the old children would exit or
  554.             exec encountered a performance problem when running for
  555.             long periods of time.  The symptoms exhibited were a
  556.             steadily increasing amount of time spent in the kernel
  557.             mode, a corresponding decrease in application
  558.             performance, and an increasing amount of kernel zone
  559.             memory.  This performance problem (including the
  560.             excessive zone memory usage) has been fixed (bug
  561.             267904).
  562.  
  563.           +o When isolated processors and processor affinity are in
  564.             use, the kernel heap may be corrupted.  This can happen
  565.             if memory used by the scheduler for the process using
  566.             affinity is freed (at exit) time, the process is still
  567.             around (wait not yet called), the memory is
  568.             reallocated, and the processor isolations are changed.
  569.             The result is often that a file's extent list is
  570.             trashed, this might not be noticed until the next crash
  571.             and reboot, or the next access to that file (bug
  572.             276262).
  573.  
  574.           +o The select system call does not recognize a MSG_BAND
  575.             message received on a file descriptor as an exception
  576.             condition which should be set in the exception file
  577.             descriptors set.  Fixed to set an exception condition
  578.             on receipt of a MSG_BAND message.  This fixes a MIPS
  579.             ABI test failure (bug 279550).
  580.  
  581.           +o A fix in this patch enables debugging (reading/writing)
  582.             of isolated processes and sprocs.  Reads of isolated
  583.             procs and sprocs introduce no latency to the affected
  584.             isolated processors.  Writes of isolated procs and
  585.             sprocs do introduce latency due to the need to
  586.             synchronize instruction and tlb caches (bug 216158).
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.                                   - 10 -
  599.  
  600.  
  601.  
  602.           +o This patch fixes a bug whereby accesses to /dev/kmem
  603.             could cause EVEREST systems to crash.  Addresses were
  604.             not properly filtered by the /dev/kmem driver before
  605.             the driver attempted to access the given address.  An
  606.             improper address could therefore cause a bus error,
  607.             which would in turn cause the system to panic (bug
  608.             283505).
  609.  
  610.           +o This patch fixes a problem whereby realtime processes
  611.             being made runable after waiting on a semaphore could
  612.             preempt a lower priority process (bug 286083).
  613.  
  614.           +o This patch has optimizations for faster core dumps in
  615.             the event of the kernel panicing.  This is particularly
  616.             useful for large memory configurations.  Dumping of
  617.             free and user pages is now controllable thru a systune
  618.             variable dump_all_pages, which, when set to 0, will
  619.             ignore dumping such pages.  This systune value should
  620.             normally be kept at its default value of 1 and should
  621.             only be set to 0 if reboot time after a panic causes
  622.             major inconvenience (bug 285989).
  623.  
  624.           +o This patch fixes a problem in crash dump code which
  625.             causes it to dump bad information above 512M when a
  626.             page is not compressible (bug 286718).
  627.  
  628.           +o This patch fixes a bug which prevented the
  629.             enable_sysad_parity and disable_sysad_parity kernel
  630.             functions from working properly when called from a
  631.             kernel driver's interrupt handler (bug 291175).
  632.  
  633.           +o On Challenge S and Indy, modem connections would
  634.             sometimes stay open after PPP, SLIP, cu, or other
  635.             software had requested the line be dropped. This patch
  636.             fixes that bug (bug 277949).
  637.  
  638.           +o This patch fixes a race condition where isolating a
  639.             processor could cause a kernel panic (bug 271295).
  640.  
  641.           +o This patch fixes a bug whereby cause bits were not set
  642.             correctly in certain cases of FP exceptions on R3000
  643.             systems (bug 276012).
  644.  
  645.           +o This patch fixes several small race conditions that
  646.             could cause performance spikes in certain cases for
  647.             kernel virtual memory allocation (bug 295101).
  648.  
  649.           +o This patch supplies VME group interrupt support for the
  650.             frame scheduler (bug 272870).
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.                                   - 11 -
  665.  
  666.  
  667.  
  668.           +o This patch fixes bugs in memory parity error reporting
  669.             and fixing on Indigo/Indigo II/Indy machines (bugs
  670.             256521 and 270168).
  671.  
  672.           +o This patch fixes a race condition whereby proc0 (sched)
  673.             would sometimes not wake up and re-activate a process
  674.             that was in the SXBRK state, even though there was
  675.             plenty of free memory (bug 300641).
  676.  
  677.           +o Fix zduart driver (CONSOLE_D2 code), to only check for
  678.             a <ctrl-a> on the port that is set to the console not
  679.             both.
  680.  
  681.           +o Added two routines need for the dmedia video driver
  682.             (__ll_bit_extract & __ll_bit_insert).
  683.  
  684.           +o Added "impactgm" variable that can be set in the PROM
  685.             before booting the kernel.  This will enable globel
  686.             texture manager.
  687.  
  688.           +o There was a small race in the IRIX kernel between the
  689.             paging daemon and a process which had breakpoints set
  690.             and was in the midst of a fork system call, which could
  691.             cause a system crash.  The race is now avoided with a
  692.             kernel mutual exclusion lock (bug 274621).
  693.  
  694.  
  695.        1.4  _S_T_R_E_A_M_S__S_T_R_H_O_L_D__c_a_p_a_b_i_l_i_t_y
  696.  
  697.        This patch implements the STREAMS STRHOLD feature in the
  698.        stream head.  This feature allows the stream head to
  699.        coalesce several small fast writes into a single streams
  700.        message before sending the data downstream, thus reducing
  701.        STREAMS overhead.  The STRHOLD feature can be activated on a
  702.        stream by stream basis by setting the STRHOLD flag in the
  703.        stream head.
  704.  
  705.        From within a driver or module, the STRHOLD flag can be set
  706.        by setting the new SO_STRHOLD flag in the so_flags field of
  707.        an M_SETOPS message and sending it upstream towards the
  708.        stream head.  Likewise, the STRHOLD flag can be cleared by
  709.        setting the new SO_NOSTRHOLD flag in the so_flags field.
  710.  
  711.        Example:
  712.  
  713.        int set_strhold(queue_t *rq, int set) {
  714.                mblk_t *bp;
  715.                struct stroptions *sop;
  716.  
  717.                if ((bp = allocb(sizeof(struct stroptions),
  718.                                BPRI_HI)) == NULL)
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.                                   - 12 -
  731.  
  732.  
  733.  
  734.                        return -1;
  735.                bp->b_datap->db_type = M_SETOPTS;
  736.                sop = (struct stroptions*)bp->b_rptr;
  737.                if (set)
  738.                        sop->so_flags |= SO_STRHOLD;
  739.                else /* clear */
  740.                        sop->so_flags |= SO_NOSTRHOLD;
  741.                putnext(rq, bp); }
  742.  
  743.        To view and manipulate the STRHOLD flag in the stream head
  744.        from a user application, it is necessary to use the new,
  745.        expanded I_GWROPT and I_SWROPT ioctls.  Refer to the
  746.        following in the updated version of streamio(7) with this
  747.        patch:
  748.  
  749.        I_SWROPT        Sets write mode using the value of the argument "arg".
  750.                        Legal bit settings for "arg" are:
  751.  
  752.                        SNDZERO Send a zero-length message downstream when a
  753.                                write of 0 bytes occurs.
  754.                        SNDPIPE Send SIGPIPE to process if sd_werror is set and
  755.                                the process is doing a write or putmsg.
  756.                        SNDHOLD Activate the STRHOLD feature.
  757.  
  758.        I_GWROPT        Returns current write mode setting, as described above,
  759.                        in the int that is pointed to by argument "arg".
  760.  
  761.        Example:
  762.  
  763.        int
  764.        set_strhold(int fd, int set)
  765.        {
  766.                int flags;
  767.  
  768.                if (ioctl(fd, I_GWROPT, &flags) < 0)
  769.                        return -1;
  770.                if (set)
  771.                        flags |= SNDHOLD;
  772.                else
  773.                        flags &= ~SNDHOLD;
  774.                return (ioctl(fd, I_SWROPT, flags));
  775.        }
  776.  
  777.        At a system level, the STRHOLD feature is controlled by two
  778.        new tunable parameters, strholdtime and tty_auto_strhold:
  779.  
  780.        strholdtime     this is the maximum time (in milliseconds) that a stream
  781.                        on which the STRHOLD feature is active will hold written
  782.                        data at the stream head in the hope of being able to
  783.                        coalesce it with data from a following write.  Note that
  784.                        the STRHOLD feature trades overhead for latency.  The
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.                                   - 13 -
  797.  
  798.  
  799.  
  800.                        default value is 50ms.  If this parameter is 0, the
  801.                        STRHOLD feature is effectively turned off on the system.
  802.  
  803.        tty_auto_strhold  if set, the line discipline module stty_ld will
  804.                        automatically set STRHOLD in the stream head whenever
  805.                        the line discipline is doing both echo and line
  806.                        canonicalization (ICANON|ECHO) and will automatically
  807.                        clear STRHOLD in the stream head otherwise (regardless
  808.                        of any I_SWROPT value requested by the user).  This
  809.                        allows existing pty-based applications to take
  810.                        advantage of the STRHOLD feature without modification.
  811.                        The default value is 0.
  812.  
  813.  
  814.        1.5  _S_u_b_s_y_s_t_e_m_s__I_n_c_l_u_d_e_d__i_n__P_a_t_c_h__S_G_0_0_0_0_7_6_6
  815.  
  816.        This patch release includes these subsystems:
  817.  
  818.           +o patchSG0000766.eoe1_man.unix
  819.  
  820.           +o patchSG0000766.eoe1_sw.unix
  821.  
  822.           +o patchSG0000766.eoe2_sw.kdebug
  823.  
  824.           +o patchSG0000766.eoe2_sw.perf
  825.  
  826.  
  827.        1.6  _I_n_s_t_a_l_l_a_t_i_o_n__I_n_s_t_r_u_c_t_i_o_n_s
  828.  
  829.        Because you want to install only the patches for problems
  830.        you have encountered, patch software is not installed by
  831.        default. After reading the descriptions of the bugs fixed in
  832.        this patch (see Section 1.3), determine the patches that
  833.        meet your specific needs.
  834.  
  835.        If, after reading Sections 1.1 and 1.2 of these release
  836.        notes, you are unsure whether your hardware and software
  837.        meet the requirements for installing a particular patch, run
  838.        _i_n_s_t.
  839.  
  840.        Patch software is installed like any other Silicon Graphics
  841.        software product.  Follow the instructions in your _S_o_f_t_w_a_r_e
  842.        _I_n_s_t_a_l_l_a_t_i_o_n _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e to bring up the miniroot
  843.        form of the software installation tools.
  844.  
  845.        Follow these steps to select a patch for installation:
  846.  
  847.          1.  At the Inst> prompt, type
  848.  
  849.              iiiinnnnssssttttaaaallllllll ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.                                   - 14 -
  863.  
  864.  
  865.  
  866.              where _x_x_x_x_x_x_x is the patch number.
  867.  
  868.          2.  Select the desired patches for installation.
  869.  
  870.          3.  Initiate the installation sequence. Type
  871.  
  872.              IIIInnnnsssstttt>>>> ggggoooo
  873.  
  874.          4.  You may find that two patches have been marked as
  875.              incompatible.  If this occurs, you must deselect one
  876.              of the patches.
  877.  
  878.              IIIInnnnsssstttt>>>> kkkkeeeeeeeepppp ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
  879.  
  880.              where _x_x_x_x_x_x_x is the patch number.
  881.  
  882.          5.  After completing the installation process, exit the
  883.              _i_n_s_t program by typing
  884.  
  885.              IIIInnnnsssstttt>>>> qqqquuuuiiiitttt
  886.  
  887.  
  888.        To remove a patch, use the _v_e_r_s_i_o_n_s _r_e_m_o_v_e command as you
  889.        would for any other software subsystem.  The removal process
  890.        reinstates the original version of software unless you have
  891.        specifically removed the patch history from your system.
  892.  
  893.        vvvveeeerrrrssssiiiioooonnnnssss rrrreeeemmmmoooovvvveeee ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
  894.  
  895.        where _x_x_x_x_x_x_x is the patch number.
  896.  
  897.        To keep a patch but increase your disk space, use the
  898.        _v_e_r_s_i_o_n_s _r_e_m_o_v_e_h_i_s_t command to remove the patch history.
  899.  
  900.        vvvveeeerrrrssssiiiioooonnnnssss rrrreeeemmmmoooovvvveeeehhhhiiiisssstttt ppppaaaattttcccchhhhSSSSGGGG_x_x_x_x_x_x_x
  901.  
  902.        where _x_x_x_x_x_x_x is the patch number.
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.